Measuring the Overhead of Intel C++ CnC over TBB for Gauss-Jordan Elimination
نویسنده
چکیده
The most efficient parallel execution of dense liner algebra algorithms is to build and evaluate the task graph constrained only by the data dependencies between the tasks. Both Intel C++ Concurrent Collections (CnC) and Threading Building Blocks (TBB) libraries allow such task-based parallel programming. In this paper, we first analyze all the three types of data dependencies in the tiled in-place Gauss-Jordan elimination algorithm and implemented it in TBB. We compare the performances of TBB and CnC, which is built on top of TBB, and found that the overhead of CnC over TBB is only 12% to 15% of the TBB time, and CnC can deliver 87% to 89% of the TBB performance for Gauss-Jordan elimination, using the optimal tile size.
منابع مشابه
Measuring the overhead of Intel C++ Concurrent Collections over Threading Building Blocks for Gauss-Jordan elimination
The most efficient way to parallelize computation is to build and evaluate the task graph constrained only by the data dependencies between the tasks. Both Intel’s C++ Concurrent Collections (CnC) and Threading Building Blocks (TBB) libraries allow such task-based parallel programming. CnC also adapts the macro data flow model by providing only single-assignment data objects in its global data ...
متن کاملSpeed Enhancement on a Matrix Inversion Hardware Architecture Based on Gauss-jordan Elimination Oh Eng Wei Universiti Teknologi Malaysia Speed Enhancement on a Matrix Inversion Hardware Architecture Based on Gauss-jordan Elimination Oh Eng Wei
Matrix inversion is a mathematical algorithm that is widely used and applied in many real time engineering applications. It is one of the most computational intensive and time consuming operations especially when it is performed in software. Gauss-Jordan Elimination is one of the many matrix inversion algorithms which has the advantage of using simpler mathematical operations to get the result....
متن کاملWould You Like Some Syntactic Sugar With Your TBB?
We have begun implementation on a source-to-source transformer that greatly eases the burden of writing code that uses Intel Thread Building Blocks (TBB). TBB is a C++ library that provides a parallel programming interface that is at a higher level than raw threads. However, because it works within the bounds of standard C++, there is a lot of syntactic overhead involved with writing a TBB appl...
متن کاملTBBench: A Micro-Benchmark Suite for Intel Threading Building Blocks
Task-based programming is becoming the state-of-the-art method of choice for extracting the desired performance from multi-core chips. It expresses a program in terms of lightweight logical tasks rather than heavyweight threads. Intel Threading Building Blocks (TBB) is a task-based parallel programming paradigm for multi-core processors. The performance gain of this paradigm depends to a great ...
متن کاملMATIN: A Random Network Coding Based Framework for High Quality Peer-to-Peer Live Video Streaming
In recent years, Random Network Coding (RNC) has emerged as a promising solution for efficient Peer-to-Peer (P2P) video multicasting over the Internet. This probably refers to this fact that RNC noticeably increases the error resiliency and throughput of the network. However, high transmission overhead arising from sending large coefficients vector as header has been the most important challeng...
متن کامل